A stepper motor is a type of motor that operates by incrementally stepping through various rotational positions. A typical stepper motor includes two windings and a rotor. The windings are oriented perpendicular to each other and alternatively driven by drive circuitry so as to cause rotational movement of the rotor. When driven in full-step mode, there are four step states (0°, 90°, 180° and 270°) corresponding to the electrical angle of the motor. Each full step of the motor involves full activation of the coils to one of these four states, with each state advancing the motor one quarter of the full electrical cycle. The correlation of the electrical cycle to mechanical degree will vary with winding construction, rotor construction, gearing, etc. To improve step resolution, it is known in the art to drive the stepper motor in micro-step mode where both windings of the stepper motor are simultaneously and continuously driven with stepped voltages that are out of phase with each other.
A typical drive architecture for a stepper motor uses an H-bridge drive circuit (with four MOSFETs) coupled to each motor winding. Provision of such H-bridge drivers is easy, but comes at an added expense and complexity of timer modules necessary to drive such circuitry. Indeed, application specific motor driver circuits including plural H-bridge drivers are typically used.
It is important in most applications of stepper motors to define a reference point for the initial starting position of the motor. A common solution for the defined reference point is the provision of an internal or external mechanical hard stop. The stepper motor is driven in a direction to return towards the mechanical hard stop and a sensing technique is implemented to detect a stall of the stepper motor against the mechanical hard stop. A common stall sensing technique senses voltage (for example, back EMF voltage) on a non-driven one of the two windings. This sensing operation can, however, be challenging due to small signal levels, blanking periods and motor noise. It is also known in the art to use a current sensing operation for stall detection.